/**
 * 此例子演示通过 footerCallback 回调函数统计本页工资总数
 * 当文档准备就绪时，为#example表格初始化一个带有自定义页脚回调的DataTable。
 */
$(function () {
    $('#example').DataTable({
        // 当表格渲染完成后，对页脚进行计算和显示总和。
        footerCallback: function (row, data, start, end, display) {
            var api = this.api(), data;

            // 将字符串值转换为数字，移除货币符号和逗号。
            var intVal = function ( i ) {
                return typeof i === 'string' ?
                    i.replace(/[$,]/g, '') * 1 :
                    typeof i === 'number' ?
                        i : 0;
            };

            // 计算整个数据集的总和。
            let total = api
                .column(4)
                .data()
                .reduce(function (a, b) {
                    return intVal(a) + intVal(b);
                });

            // 计算当前页的总和。
            let pageTotal = api
                .column(4, {page: 'current'})
                .data()
                .reduce(function (a, b) {
                    return intVal(a) + intVal(b);
                }, 0);

            // 在页脚显示当前页总和和总数据集的总和。
            $( api.column( 4 ).footer() ).html(
                '$' + pageTotal + ' ( $'+ total +' total)'
            );
        }
    });
});

